﻿using RXY_Mall.Application.Marketing.Dto;
using RXY_Mall.Core;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace RXY_Mall.Application.Marketing
{
    public interface IMarketingService
    {
        #region Banner
        /// <summary>
        /// banner列表
        /// </summary>
        /// <returns></returns>
        Response<IPagedList<GetBannersOutput>> GetBanners(string start_date, string end_date, int status, int page_index = 1, int page_size = 20);
        Task<Response<bool>> UpdateBannerStatus(UpdateBannerStatusInput input);
        /// <summary>
        /// banner详情
        /// </summary>
        /// <param name="banner_id"></param>
        /// <returns></returns>
        Task<Response<GetBannerOutput>> GetBanner(int banner_id);
        Task<Response<GetBannerOutput>> UpdateBanner(GetBannerOutput input);
        #endregion

        #region 首页商品
        Response<IPagedList<GetHomeGoodsOutput>> GetHomeGoods(string start_date, string end_date, int status, int page_index, int page_size);
        Task<Response<bool>> UpdateHomeGoodsStatus(UpdateHomeGoodsStatusInput input);
        Task<Response<GetHomeGoodsOutput>> GetHomeGoods(int id);
        Task<Response<GetHomeGoodsOutput>> UpdateHomeGoods(GetHomeGoodsOutput input);

        Task<Response<bool>> BatchAddHomeGood(BatchAddHomeGoodsInput input);
        #endregion

        #region 优惠券
        Response<IPagedList<GetCouponsOutput>> GetCoupons(string start_date, string end_date, int status, int page_index, int page_size);
        Task<Response<bool>> UpdateCouponStatus(UpdateCouponStatusInput input);
        Task<Response<GetCouponOutput>> GetCoupon(int id);
        Task<Response<GetCouponOutput>> UpdateCoupon(GetCouponOutput input);
        Task<Response<bool>> BatchAddCoupon(BatchAddCouponInput input);

        #endregion

        #region 补贴卡
        Response<IPagedList<GetSubsidiesOutput>> GetSubsidies(string start_date, string end_date, int status, int page_index, int page_size);
        Task<Response<bool>> UpdateSubsidyStatus(UpdateSubsidyStatusInput input);
        Task<Response<AddSubsidyInput>> GetSubsidy(int id);
        //Task<Response<GetSubsidyOutput>> GetSubsidy(int id);
        Task<Response<GetSubsidyOutput>> UpdateSubsidy(GetSubsidyOutput input);
        Task<Response<GetSubsidyItemOutput>> GetSubsidyItem(int id);
        Task<Response<GetSubsidyItemOutput>> UpdateSubsidyItem(GetSubsidyItemOutput input);
        Task<Response<bool>> AddSubsidy(AddSubsidyInput input);
        #endregion

    }
}
